import { mergeConfig } from 'vite';
import baseConfig from './vite.config.base';
import configCompressPlugin from './plugin/compress';
import configVisualizerPlugin from './plugin/visualizer';
import configArcoResolverPlugin from './plugin/arcoResolver';
import configImageminPlugin from './plugin/imagemin';

export default mergeConfig(
  {
    mode: 'production',
    plugins: [
      configCompressPlugin('gzip'),
      configVisualizerPlugin(),
      configArcoResolverPlugin(),
      configImageminPlugin(),
    ],
    server: {
      proxy: {
        '/api': {
          target: 'https://api.izscd.com/zscd/admin',
          changeOrigin: true,
          rewrite: (path) => path,
          secure: false,
          ws: true,
        },
      },
    },
    build: {
      rollupOptions: {
        output: {
          manualChunks: {
            arco: ['@arco-design/web-vue'],
            chart: ['echarts', 'vue-echarts'],
            vue: ['vue', 'vue-router', 'pinia', '@vueuse/core', 'vue-i18n'],
          },
        },
      },
      chunkSizeWarningLimit: 2000,
    },
    preview: {
      port: 5173,
      proxy: {
        '/api': {
          target: 'http://118.178.190.117:8090/admin',
          changeOrigin: true,
          rewrite: (path) => path,
        },
      },
      cors: true,
    },
  },
  baseConfig
);
